package com.film.dao;

import java.util.List;

import com.film.domain.Film;

/**
 * 该类是电影的数据访问类
 * @author 唐永林
 *
 */
public interface FilmDao {
	/**
	 * 该方法用来查询所有的电影
	 * @param isDelete 电影是否下架 0上架 1下架
	 * @return  返回一个电影类集合
	 */
	public List<Film> selectAllFilm(int isDelete);
	/**
	 * 查询电影的类型
	 * @return
	 */
	public List<String> selectFilmPlace();
	
	/**
	 * 该方法用来做热门电影的查询
	 * @param isDelete 电影是否下架 0上架 1下架
	 * @return
	 */
	public List<Film> selectHotFilm(int isDelete);
	
	/**
	 * 该方法用来做查询上映的电影

	 * @param isDelete 电影是否下架 0上架 1下架
	 * @return
	 */
	public List<Film> selectShowFilm(int isDelete);
	
	/**
	 * 该方法用来做电影详情
	 * @param filmId 电影的id
	 * @param isDelete 电影是否下架 0上架 1下架
	 * @return
	 */
	public Film selectOneFilm(int filmId,int isDelete);
	/**
	 * 该方法用来做即将上映电影的分页展示上架的电影
	 * @param pageNum 显示第几页
	 * @param stripNum  显示的条数
	 * @param isDelete 电影是否下架 0上架 1下架
	 * @return
	 */
	public List<Film> selectFilmLimitShow(int pageNum,int stripNum,int isDelete);
	/**
	 * 该方法用来做热门电影电影的分页展示上架的电影
	 * @param pageNum 显示第几页
	 * @param stripNum  显示的条数
	 * @param isDelete 电影是否下架 0上架 1下架
	 * @return
	 */
	public List<Film> selectFilmLimitHot(int pageNum,int stripNum,int isDelete);
	/**
	 * 该方法用来做所有电影上映时间的查询
	 * @return
	 */
	public List<String> selectFilmShowTime();
	/**
	 * 用来做删除  （做假删除 is_dilete字段）
	 * @param filmId 电影的修改方法  通过电影的id进行修改
	 * @param isDelete 电影是否下架 0上架 1下架				
	 * @return
	 */
	public int updateFilm(int filmId,int isDelete);
	

	/**
	 * 根据电影的id来修改电影的评分
	 * @param reviewScoreint 平均分数
	 * @param film_id 电影id
	 * @return
	 */
	public int updateFilmReviewScore(String reviewScoreint ,int film_id);
	
	
	/**
	 * 该方法用来做电影信息的添加
	 * @param film
	 * @return
	 */
	public int addFilm(Film film,int expect);
	
	/**
	 * 该方法用于后台管理系统对电影进行修改
	 * @param film
	 * @return
	 */
	public int updateFilmInfo(Film film);
	/**
	 * 该方法用来上架电影
	 * @param filmId
	 * @return
	 */
	public int groundingFilm(int filmId);
	
}
